#ifndef PAGINATOR_H
#define PAGINATOR_H

#include <QWidget>
#include <QPushButton>
#include <QLineEdit>
#include "pagebutton.h"

class Paginator : public QWidget
{
    Q_OBJECT
public:
    explicit Paginator(int pageCount, QWidget *parent = nullptr);

private:
    void setBtnStyle(QPushButton* btn);
    void initSignalAndSlots();
    // 跳转到page页
    void jumpToPage(int page);

    void jumpToPageCase1(int page);
    void jumpToPageCase2(int page);
    void jumpToPageCase3(int page);
private slots:
    void prevPage();
    void nextPage();
    void pageBtnClicked();

signals:
    // 跳转到指定页数的信号
    void pageChanged(int page);

private:
    int pageCount = 7;// 总页数
    int currentPage = 1;// 当前页数
    const int pageSize = 20;// 每页显示的条数

    // 按钮上一页下一页
    QPushButton* prevPageBtn;
    QPushButton* nextPageBtn;

    // 页面切换按钮集
    QList<PageButton*> pageBtns;
    // 跳转至指定页
    QLineEdit* pageEdit;
};

#endif // PAGINATOR_H
